// components/auth/auth.js
const app = getApp()
const { Api } = app.globalData

Component({
	/**
	 * 组件的属性列表
	 */
	properties: {

	},

	/**
	 * 组件的初始数据
	 */
	data: {
		unAuth: false,
		appName: app.globalData.APP_NAME
	},

	attached() {
		this.getAuthState()
	},

	/**
	 * 组件的方法列表
	 */
	methods: {
		getAuthState() {
			wx.getSetting({
				success: res => {
					if (res.authSetting['scope.userInfo']) {
						this.getUserInfo()
					} else {
						this.setData({
							unAuth: true
						})	
					}
				}
			})
		},

		getUserInfo(e) {
			wx.showLoading({
				title: '登录中',
				mask: true
			})
			if (typeof e === 'object') {
				if (e.detail.userInfo) {
					this.updateToServer(e.detail.userInfo)
					this.setData({
						unAuth: false
					})
				} else {
					// 拒绝授权
					this.handleRefused()
				}
			} else {
				wx.getUserInfo({
					success: res => {
						this.updateToServer(res.userInfo)
						this.setData({
							unAuth: false
						})
						//用户已经授权过
					}
				})
			}
		},
		
		handleRefused() {
			wx.showModal({
				title: '糟糕',
				content: '若不授权获取微信个人信息，则无法使用本小程序部分功能；点击同意授权，进入设置开启【用户信息】选项，则可重新使用；若您不愿开启，后期还想使用本小程序，您可以在微信【发现】->【小程序】->长按【' + app.globalData.APP_NAME + '】->删除，然后重新搜索打开，点击【授权】，可继续使用',
				showCancel: false,
				confirmText: '同意授权',
				success: res => {
					if (res.confirm) {
						// 重新发起授权
						wx.openSetting({
							success: res => {
								res.authSetting["scope.userInfo"] && this.updateToServer(res.userInfo)
							},
							complete() {
								wx.hideLoading()
							}
						})
					}
				}
			})
		},

		updateToServer(userInfo) {
			this.triggerEvent('getUserInfo', {
				userInfo
			})
			app.post(Api.user.update, {
				'nickname': userInfo['nickName'],
				'avatar': userInfo['avatarUrl']
			})
			wx.hideLoading()
		}
	}
})
